iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 12
0

為什麼要有 Service

因為 Controller 負責所有流程的控制,所以我們希望 Controller 一直保持在很簡潔的狀態,所以我們會盡量把 複雜的計算邏輯及商業邏輯都搬到 Service ,以利重複使用跟管理。

新增 Service

檔案放置目錄:/api/service

// api/service/AuthService.js
module.exports = {
  isAdmin: function(user) {
    let isAdmin = false;
    if (user) {
      user.Roles.forEach((role) => {
        if(role.authority == 'admin') isAdmin = true;
      });
    }
    return isAdmin;
  }
}

Service 如何使用

為了方便使用所以 Sails.js 框架上的 models 跟 service 會自動變定義為全域變(/config/globals.js)。

// api/controllers/AdminController
module.exports = {
    isSuperPermission: function (req, res) {
        const loginUser = AuthService.getLoginUser(req);
        const isAdmin = AuthService.isAdmin(loginUser);
        res.ok({isAdmin: isAdmin});
    }
}

延伸閱讀



上一篇
認識 Sails.js - Controllers
下一篇
認識 Sails.js - Model 和 ORM
系列文
認識 Sails.js - 如何建構一個 MVC 網站17
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言